home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Add-Ons / MPW / MPW noweb 2.7 / src / c / doc.aux < prev    next >
Encoding:
Latex Auxiliary File  |  1995-05-30  |  45.0 KB  |  891 lines  |  [TEXT/MPS ]

  1. \relax 
  2. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {1}Converting a {\string\ptt\space noweb} file to tool markup}{2}}
  3. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.1}Main program}{2}}
  4. \newsublabel{NWmarB-staU-1}{{}{3}}
  5. \nwixadd{\nwixd }{state}{NWmarB-staU-1}
  6. \nwixadd{\nwixd }{mark}{NWmarB-staU-1}
  7. \nwixadd{\nwixd }{index}{NWmarB-staU-1}
  8. \nwixadd{\nwixd }{print:unstate}{NWmarB-staU-1}
  9. \nwixadd{\nwixd }{print:unindex}{NWmarB-staU-1}
  10. \nwixadd{\nwixd }{print:unpair}{NWmarB-staU-1}
  11. \nwixadd{\nwixu }{strlen}{NWmarB-staU-1}
  12. \newsublabel{NWmarB-*-1}{{}{4}}
  13. \nwixadd{\nwixd }{markup}{NWmarB-*-1}
  14. \nwixadd{\nwixu }{getline}{NWmarB-*-1}
  15. \nwixadd{\nwixu }{mark}{NWmarB-*-1}
  16. \nwixadd{\nwixu }{module}{NWmarB-*-1}
  17. \nwixadd{\nwixu }{state}{NWmarB-*-1}
  18. \newsublabel{NWmarB-copq-1}{{}{6}}
  19. \nwixadd{\nwixu }{first:undoc:unline}{NWmarB-copq-1}
  20. \nwixadd{\nwixu }{getline:unexpand}{NWmarB-copq-1}
  21. \nwixadd{\nwixu }{getmodname}{NWmarB-copq-1}
  22. \nwixadd{\nwixu }{impossible}{NWmarB-copq-1}
  23. \nwixadd{\nwixu }{is:undef}{NWmarB-copq-1}
  24. \nwixadd{\nwixu }{print:unpair}{NWmarB-copq-1}
  25. \nwixadd{\nwixu }{print:unstate}{NWmarB-copq-1}
  26. \nwixadd{\nwixu }{starts:uncode}{NWmarB-copq-1}
  27. \nwixadd{\nwixu }{starts:undoc}{NWmarB-copq-1}
  28. \nwixadd{\nwixu }{state}{NWmarB-copq-1}
  29. \newsublabel{NWmarB-remq-1}{{}{7}}
  30. \nwixadd{\nwixu }{strlen}{NWmarB-remq-1}
  31. \newsublabel{NWmarB-addf-1}{{}{7}}
  32. \nwixadd{\nwixu }{print:unpair}{NWmarB-addf-1}
  33. \newsublabel{NWmarB-conJ-1}{{}{7}}
  34. \nwixadd{\nwixu }{mark}{NWmarB-conJ-1}
  35. \nwixadd{\nwixu }{mod:unend}{NWmarB-conJ-1}
  36. \nwixadd{\nwixu }{mod:unstart}{NWmarB-conJ-1}
  37. \nwixadd{\nwixu }{module}{NWmarB-conJ-1}
  38. \nwixadd{\nwixu }{print:unpair}{NWmarB-conJ-1}
  39. \nwixadd{\nwixu }{unescape}{NWmarB-conJ-1}
  40. \newsublabel{NWmarB-conS-1}{{}{7}}
  41. \nwixadd{\nwixu }{mark}{NWmarB-conS-1}
  42. \nwixadd{\nwixu }{print:unpair}{NWmarB-conS-1}
  43. \nwixadd{\nwixu }{quote:unend}{NWmarB-conS-1}
  44. \nwixadd{\nwixu }{quote:unstart}{NWmarB-conS-1}
  45. \nwixadd{\nwixu }{unescape}{NWmarB-conS-1}
  46. \newsublabel{NWmarB-emie-1}{{}{8}}
  47. \nwixadd{\nwixu }{print:unindex}{NWmarB-emie-1}
  48. \nwixadd{\nwixu }{remove:undef:unmarker}{NWmarB-emie-1}
  49. \newsublabel{NWmarB-comn-1}{{}{8}}
  50. \nwixadd{\nwixu }{errorat}{NWmarB-comn-1}
  51. \newsublabel{NWmarB-Ched-1}{{}{8}}
  52. \nwixadd{\nwixu }{errorat}{NWmarB-Ched-1}
  53. \nwixadd{\nwixu }{mod:unstart}{NWmarB-Ched-1}
  54. \nwixadd{\nwixu }{state}{NWmarB-Ched-1}
  55. \newsublabel{NWmarB-*-2}{{}{9}}
  56. \nwixadd{\nwixu }{errorlevel}{NWmarB-*-2}
  57. \nwixadd{\nwixu }{errormsg}{NWmarB-*-2}
  58. \nwixadd{\nwixu }{markup}{NWmarB-*-2}
  59. \newsublabel{NWmarB-hanD-1}{{}{9}}
  60. \nwixadd{\nwixu }{errormsg}{NWmarB-hanD-1}
  61. \nwixadd{\nwixu }{tabsize}{NWmarB-hanD-1}
  62. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {1.2}Identifying the special {\string\ptt\space noweb} control sequences}{10}}
  63. \newsublabel{NWmar9-*-3}{{}{10}}
  64. \nwixadd{\nwixu }{markup}{NWmar9-*-3}
  65. \newsublabel{NWmar9-datG-1}{{}{11}}
  66. \nwixadd{\nwixd }{at:unsign}{NWmar9-datG-1}
  67. \newsublabel{NWmar9-hea6-1}{{}{11}}
  68. \nwixadd{\nwixu }{at:unsign}{NWmar9-hea6-1}
  69. \newsublabel{NWmar9-hea6-2}{{}{12}}
  70. \nwixadd{\nwixu }{first:undoc:unline}{NWmar9-hea6-2}
  71. \nwixadd{\nwixu }{starts:undoc}{NWmar9-hea6-2}
  72. \newsublabel{NWmar9-C*fB-1}{{}{12}}
  73. \nwixadd{\nwixd }{starts:undoc}{NWmar9-C*fB-1}
  74. \nwixadd{\nwixd }{first:undoc:unline}{NWmar9-C*fB-1}
  75. \nwixadd{\nwixu }{at:unsign}{NWmar9-C*fB-1}
  76. \newsublabel{NWmar9-hea6-3}{{}{12}}
  77. \nwixadd{\nwixu }{is:undef}{NWmar9-hea6-3}
  78. \nwixadd{\nwixu }{remove:undef:unmarker}{NWmar9-hea6-3}
  79. \newsublabel{NWmar9-datG-2}{{}{12}}
  80. \newsublabel{NWmar9-C*fB-2}{{}{12}}
  81. \nwixadd{\nwixu }{at:unsign}{NWmar9-C*fB-2}
  82. \nwixadd{\nwixu }{is:undef}{NWmar9-C*fB-2}
  83. \nwixadd{\nwixu }{remove:undef:unmarker}{NWmar9-C*fB-2}
  84. \newsublabel{NWmar9-firo-1}{{}{13}}
  85. \nwixadd{\nwixd }{is:undef}{NWmar9-firo-1}
  86. \nwixadd{\nwixd }{remove:undef:unmarker}{NWmar9-firo-1}
  87. \nwixadd{\nwixu }{strlen}{NWmar9-firo-1}
  88. \newsublabel{NWmar9-hea6-4}{{}{13}}
  89. \nwixadd{\nwixu }{mark}{NWmar9-hea6-4}
  90. \nwixadd{\nwixu }{mod:unend}{NWmar9-hea6-4}
  91. \nwixadd{\nwixu }{mod:unstart}{NWmar9-hea6-4}
  92. \nwixadd{\nwixu }{module}{NWmar9-hea6-4}
  93. \newsublabel{NWmar9-C*fB-3}{{}{13}}
  94. \nwixadd{\nwixd }{mod:unstart}{NWmar9-C*fB-3}
  95. \nwixadd{\nwixd }{mod:unend}{NWmar9-C*fB-3}
  96. \nwixadd{\nwixu }{find:unescaped}{NWmar9-C*fB-3}
  97. \nwixadd{\nwixu }{mark}{NWmar9-C*fB-3}
  98. \newsublabel{NWmar9-hea6-5}{{}{14}}
  99. \nwixadd{\nwixu }{getmodname}{NWmar9-hea6-5}
  100. \nwixadd{\nwixu }{module}{NWmar9-hea6-5}
  101. \nwixadd{\nwixu }{starts:uncode}{NWmar9-hea6-5}
  102. \newsublabel{NWmar9-C*fB-4}{{}{14}}
  103. \nwixadd{\nwixd }{starts:uncode}{NWmar9-C*fB-4}
  104. \nwixadd{\nwixd }{getmodname}{NWmar9-C*fB-4}
  105. \nwixadd{\nwixu }{free}{NWmar9-C*fB-4}
  106. \nwixadd{\nwixu }{mod:unend}{NWmar9-C*fB-4}
  107. \nwixadd{\nwixu }{mod:unstart}{NWmar9-C*fB-4}
  108. \nwixadd{\nwixu }{module}{NWmar9-C*fB-4}
  109. \newsublabel{NWmar9-errV-1}{{}{14}}
  110. \nwixadd{\nwixu }{errorat}{NWmar9-errV-1}
  111. \nwixadd{\nwixu }{Module}{NWmar9-errV-1}
  112. \newsublabel{NWmar9-ErrQ-1}{{}{15}}
  113. \nwixadd{\nwixu }{free}{NWmar9-ErrQ-1}
  114. \nwixadd{\nwixu }{impossible}{NWmar9-ErrQ-1}
  115. \nwixadd{\nwixu }{module}{NWmar9-ErrQ-1}
  116. \newsublabel{NWmar9-hea6-6}{{}{15}}
  117. \nwixadd{\nwixu }{mark}{NWmar9-hea6-6}
  118. \nwixadd{\nwixu }{quote:unend}{NWmar9-hea6-6}
  119. \nwixadd{\nwixu }{quote:unstart}{NWmar9-hea6-6}
  120. \newsublabel{NWmar9-C*fB-5}{{}{15}}
  121. \nwixadd{\nwixd }{quote:unstart}{NWmar9-C*fB-5}
  122. \nwixadd{\nwixu }{find:unescaped}{NWmar9-C*fB-5}
  123. \nwixadd{\nwixu }{mark}{NWmar9-C*fB-5}
  124. \newsublabel{NWmar9-C*fB-6}{{}{15}}
  125. \nwixadd{\nwixd }{quote:unend}{NWmar9-C*fB-6}
  126. \nwixadd{\nwixu }{find:unescaped}{NWmar9-C*fB-6}
  127. \nwixadd{\nwixu }{mark}{NWmar9-C*fB-6}
  128. \newsublabel{NWmar9-hea6-7}{{}{16}}
  129. \nwixadd{\nwixu }{find:unescaped}{NWmar9-hea6-7}
  130. \nwixadd{\nwixu }{mark}{NWmar9-hea6-7}
  131. \nwixadd{\nwixu }{markup}{NWmar9-hea6-7}
  132. \newsublabel{NWmar9-C*fB-7}{{}{16}}
  133. \nwixadd{\nwixd }{find:unescaped}{NWmar9-C*fB-7}
  134. \nwixadd{\nwixu }{mark}{NWmar9-C*fB-7}
  135. \nwixadd{\nwixu }{strlen}{NWmar9-C*fB-7}
  136. \newsublabel{NWmar9-hea6-8}{{}{17}}
  137. \nwixadd{\nwixu }{unescape}{NWmar9-hea6-8}
  138. \newsublabel{NWmar9-C*fB-8}{{}{17}}
  139. \nwixadd{\nwixd }{unescape}{NWmar9-C*fB-8}
  140. \nwixadd{\nwixu }{at:unsign}{NWmar9-C*fB-8}
  141. \nwixadd{\nwixu }{checkptr}{NWmar9-C*fB-8}
  142. \nwixadd{\nwixu }{malloc}{NWmar9-C*fB-8}
  143. \nwixadd{\nwixu }{strlen}{NWmar9-C*fB-8}
  144. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {2}Tangling}{18}}
  145. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.1}Main program}{18}}
  146. \newsublabel{NWmai7-*-4}{{}{18}}
  147. \nwixadd{\nwixu }{errorlevel}{NWmai7-*-4}
  148. \nwixadd{\nwixu }{module}{NWmai7-*-4}
  149. \nwixadd{\nwixu }{notangle}{NWmai7-*-4}
  150. \nwixadd{\nwixu }{root}{NWmai7-*-4}
  151. \nwixadd{\nwixu }{tabsize}{NWmai7-*-4}
  152. \newsublabel{NWmai7-proM-1}{{}{18}}
  153. \newsublabel{NWmai7-hanV-1}{{}{19}}
  154. \nwixadd{\nwixu }{errormsg}{NWmai7-hanV-1}
  155. \nwixadd{\nwixu }{module}{NWmai7-hanV-1}
  156. \nwixadd{\nwixu }{root}{NWmai7-hanV-1}
  157. \nwixadd{\nwixu }{tabsize}{NWmai7-hanV-1}
  158. \newsublabel{NWmai7-hanX-1}{{}{19}}
  159. \nwixadd{\nwixu }{errormsg}{NWmai7-hanX-1}
  160. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.2}Tangling a single file}{20}}
  161. \newsublabel{NWnotB-hea6-9}{{}{20}}
  162. \nwixadd{\nwixu }{notangle}{NWnotB-hea6-9}
  163. \newsublabel{NWnotB-*-5}{{}{20}}
  164. \newsublabel{NWnotB-*-6}{{}{21}}
  165. \nwixadd{\nwixd }{notangle}{NWnotB-*-6}
  166. \nwixadd{\nwixu }{apply:uneach:unmodule}{NWnotB-*-6}
  167. \nwixadd{\nwixu }{expand}{NWnotB-*-6}
  168. \nwixadd{\nwixu }{getline}{NWnotB-*-6}
  169. \nwixadd{\nwixu }{lookup}{NWnotB-*-6}
  170. \nwixadd{\nwixu }{module}{NWnotB-*-6}
  171. \nwixadd{\nwixu }{Module}{NWnotB-*-6}
  172. \nwixadd{\nwixu }{read:undefs}{NWnotB-*-6}
  173. \nwixadd{\nwixu }{remove:unfinal:unnewline}{NWnotB-*-6}
  174. \nwixadd{\nwixu }{root}{NWnotB-*-6}
  175. \newsublabel{NWnotB-hea6-A}{{}{22}}
  176. \nwixadd{\nwixu }{module}{NWnotB-hea6-A}
  177. \nwixadd{\nwixu }{read:undefs}{NWnotB-hea6-A}
  178. \newsublabel{NWnotB-*-7}{{}{23}}
  179. \nwixadd{\nwixd }{read:undefs}{NWnotB-*-7}
  180. \nwixadd{\nwixu }{addmodule}{NWnotB-*-7}
  181. \nwixadd{\nwixu }{addnewline}{NWnotB-*-7}
  182. \nwixadd{\nwixu }{addstring}{NWnotB-*-7}
  183. \nwixadd{\nwixu }{getline}{NWnotB-*-7}
  184. \nwixadd{\nwixu }{index}{NWnotB-*-7}
  185. \nwixadd{\nwixu }{insert}{NWnotB-*-7}
  186. \nwixadd{\nwixu }{insist}{NWnotB-*-7}
  187. \nwixadd{\nwixu }{is:unend}{NWnotB-*-7}
  188. \nwixadd{\nwixu }{is:unindex}{NWnotB-*-7}
  189. \nwixadd{\nwixu }{is:unkeyword}{NWnotB-*-7}
  190. \nwixadd{\nwixu }{Location}{NWnotB-*-7}
  191. \nwixadd{\nwixu }{Module}{NWnotB-*-7}
  192. \nwixadd{\nwixu }{module}{NWnotB-*-7}
  193. \nwixadd{\nwixu }{warn:undots}{NWnotB-*-7}
  194. \newsublabel{NWnotB-tra1A-1}{{}{24}}
  195. \nwixadd{\nwixu }{is:unbegin}{NWnotB-tra1A-1}
  196. \nwixadd{\nwixu }{is:unindex}{NWnotB-tra1A-1}
  197. \nwixadd{\nwixu }{is:unkeyword}{NWnotB-tra1A-1}
  198. \newsublabel{NWnotB-rep13-1}{{}{24}}
  199. \nwixadd{\nwixu }{getline}{NWnotB-rep13-1}
  200. \nwixadd{\nwixu }{is:unkeyword}{NWnotB-rep13-1}
  201. \newsublabel{NWnotB-copX-1}{{}{24}}
  202. \nwixadd{\nwixu }{strcpy}{NWnotB-copX-1}
  203. \nwixadd{\nwixu }{strlen}{NWnotB-copX-1}
  204. \newsublabel{NWnotB-savz-1}{{}{24}}
  205. \nwixadd{\nwixu }{overflow}{NWnotB-savz-1}
  206. \nwixadd{\nwixu }{strcpy}{NWnotB-savz-1}
  207. \nwixadd{\nwixu }{strlen}{NWnotB-savz-1}
  208. \newsublabel{NWnotB-*-8}{{}{25}}
  209. \nwixadd{\nwixd }{warn:undots}{NWnotB-*-8}
  210. \nwixadd{\nwixu }{errormsg}{NWnotB-*-8}
  211. \nwixadd{\nwixu }{Module}{NWnotB-*-8}
  212. \nwixadd{\nwixu }{strlen}{NWnotB-*-8}
  213. \newsublabel{NWnotB-FunL-1}{{}{25}}
  214. \nwixadd{\nwixu }{warn:undots}{NWnotB-FunL-1}
  215. \newsublabel{NWnotB-quiX-1}{{}{25}}
  216. \nwixadd{\nwixu }{errormsg}{NWnotB-quiX-1}
  217. \nwixadd{\nwixu }{module}{NWnotB-quiX-1}
  218. \nwixadd{\nwixu }{root}{NWnotB-quiX-1}
  219. \newsublabel{NWnotB-*-9}{{}{25}}
  220. \nwixadd{\nwixd }{insist}{NWnotB-*-9}
  221. \nwixadd{\nwixu }{impossible}{NWnotB-*-9}
  222. \nwixadd{\nwixu }{is:unkeyword}{NWnotB-*-9}
  223. \newsublabel{NWnotB-if*k-1}{{}{25}}
  224. \nwixadd{\nwixu }{impossible}{NWnotB-if*k-1}
  225. \nwixadd{\nwixu }{module}{NWnotB-if*k-1}
  226. \newsublabel{NWnotB-FunL-2}{{}{26}}
  227. \nwixadd{\nwixu }{insist}{NWnotB-FunL-2}
  228. \newsublabel{NWnotB-comU-1}{{}{26}}
  229. \nwixadd{\nwixu }{errorat}{NWnotB-comU-1}
  230. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.3}Code to recognize {\string\ptt\space {}noweb} markup on input}{27}}
  231. \newsublabel{NWmat8-hea6-B}{{}{27}}
  232. \nwixadd{\nwixu }{is:unbegin}{NWmat8-hea6-B}
  233. \nwixadd{\nwixu }{is:unend}{NWmat8-hea6-B}
  234. \nwixadd{\nwixu }{is:unindex}{NWmat8-hea6-B}
  235. \nwixadd{\nwixu }{is:unkeyword}{NWmat8-hea6-B}
  236. \newsublabel{NWmat8-*-A}{{}{27}}
  237. \nwixadd{\nwixd }{is:unkeyword}{NWmat8-*-A}
  238. \nwixadd{\nwixd }{is:unbegin}{NWmat8-*-A}
  239. \nwixadd{\nwixd }{is:unend}{NWmat8-*-A}
  240. \nwixadd{\nwixd }{is:unindex}{NWmat8-*-A}
  241. \nwixadd{\nwixu }{index}{NWmat8-*-A}
  242. \nwixadd{\nwixu }{strlen}{NWmat8-*-A}
  243. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.4}Expanding multiple files from a single source}{28}}
  244. \newsublabel{NWmnt6-*-B}{{}{28}}
  245. \nwixadd{\nwixu }{emitfile}{NWmnt6-*-B}
  246. \nwixadd{\nwixu }{errorlevel}{NWmnt6-*-B}
  247. \nwixadd{\nwixu }{notangle}{NWmnt6-*-B}
  248. \nwixadd{\nwixu }{tabsize}{NWmnt6-*-B}
  249. \newsublabel{NWmnt6-reaT-1}{{}{29}}
  250. \nwixadd{\nwixu }{apply:uneach:unmodule}{NWmnt6-reaT-1}
  251. \nwixadd{\nwixu }{read:undefs}{NWmnt6-reaT-1}
  252. \nwixadd{\nwixu }{remove:unfinal:unnewline}{NWmnt6-reaT-1}
  253. \newsublabel{NWmnt6-wriU-1}{{}{29}}
  254. \nwixadd{\nwixu }{add:unuses:unto:unusecounts}{NWmnt6-wriU-1}
  255. \nwixadd{\nwixu }{apply:uneach:unmodule}{NWmnt6-wriU-1}
  256. \nwixadd{\nwixu }{emit:unif:ununused:unand:unconforming}{NWmnt6-wriU-1}
  257. \newsublabel{NWmnt6-locG-1}{{}{29}}
  258. \nwixadd{\nwixu }{add:unuses:unto:unusecounts}{NWmnt6-locG-1}
  259. \nwixadd{\nwixu }{emit:unif:ununused:unand:unconforming}{NWmnt6-locG-1}
  260. \nwixadd{\nwixu }{Module}{NWmnt6-locG-1}
  261. \newsublabel{NWmnt6-*-C}{{}{29}}
  262. \nwixadd{\nwixd }{add:unuses:unto:unusecounts}{NWmnt6-*-C}
  263. \nwixadd{\nwixu }{lookup}{NWmnt6-*-C}
  264. \nwixadd{\nwixu }{modpart}{NWmnt6-*-C}
  265. \nwixadd{\nwixu }{Module}{NWmnt6-*-C}
  266. \newsublabel{NWmnt6-*-D}{{}{30}}
  267. \nwixadd{\nwixd }{emit:unif:ununused:unand:unconforming}{NWmnt6-*-D}
  268. \nwixadd{\nwixu }{emitfile}{NWmnt6-*-D}
  269. \nwixadd{\nwixu }{errormsg}{NWmnt6-*-D}
  270. \nwixadd{\nwixu }{Module}{NWmnt6-*-D}
  271. \newsublabel{NWmnt6-locG-2}{{}{31}}
  272. \nwixadd{\nwixu }{emitfile}{NWmnt6-locG-2}
  273. \newsublabel{NWmnt6-*-E}{{}{31}}
  274. \nwixadd{\nwixd }{emitfile}{NWmnt6-*-E}
  275. \nwixadd{\nwixu }{errormsg}{NWmnt6-*-E}
  276. \nwixadd{\nwixu }{lookup}{NWmnt6-*-E}
  277. \nwixadd{\nwixu }{Module}{NWmnt6-*-E}
  278. \nwixadd{\nwixu }{root}{NWmnt6-*-E}
  279. \nwixadd{\nwixu }{tempnam}{NWmnt6-*-E}
  280. \newsublabel{NWmnt6-expk-1}{{}{31}}
  281. \nwixadd{\nwixu }{expand}{NWmnt6-expk-1}
  282. \nwixadd{\nwixu }{root}{NWmnt6-expk-1}
  283. \newsublabel{NWmnt6-if*1I-1}{{}{32}}
  284. \newsublabel{NWmnt6-comg-1}{{}{32}}
  285. \nwixadd{\nwixu }{errormsg}{NWmnt6-comg-1}
  286. \newsublabel{NWmnt6-comh-1}{{}{32}}
  287. \nwixadd{\nwixu }{errormsg}{NWmnt6-comh-1}
  288. \nwixadd{\nwixu }{root}{NWmnt6-comh-1}
  289. \newsublabel{NWmnt6-hanS-1}{{}{33}}
  290. \nwixadd{\nwixu }{errormsg}{NWmnt6-hanS-1}
  291. \nwixadd{\nwixu }{tabsize}{NWmnt6-hanS-1}
  292. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {2.4.1}Temporary files}{33}}
  293. \newsublabel{NWmnt6-locG-3}{{}{33}}
  294. \nwixadd{\nwixd }{tempnam}{NWmnt6-locG-3}
  295. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.5}The internal structure of modules (chunks)}{34}}
  296. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {2.5.1}Assembling modules from parts}{34}}
  297. \newsublabel{NWmodA-hea6-C}{{}{34}}
  298. \nwixadd{\nwixd }{Location}{NWmodA-hea6-C}
  299. \nwixadd{\nwixd }{parttype}{NWmodA-hea6-C}
  300. \nwixadd{\nwixd }{modpart}{NWmodA-hea6-C}
  301. \newsublabel{NWmodA-hea6-D}{{}{34}}
  302. \nwixadd{\nwixd }{module}{NWmodA-hea6-D}
  303. \nwixadd{\nwixd }{Module}{NWmodA-hea6-D}
  304. \nwixadd{\nwixu }{modpart}{NWmodA-hea6-D}
  305. \newsublabel{NWmodA-hea6-E}{{}{34}}
  306. \nwixadd{\nwixu }{Module}{NWmodA-hea6-E}
  307. \nwixadd{\nwixu }{module}{NWmodA-hea6-E}
  308. \nwixadd{\nwixu }{newmodule}{NWmodA-hea6-E}
  309. \newsublabel{NWmodA-C*fB-9}{{}{35}}
  310. \nwixadd{\nwixd }{newmodule}{NWmodA-C*fB-9}
  311. \nwixadd{\nwixu }{checkptr}{NWmodA-C*fB-9}
  312. \nwixadd{\nwixu }{malloc}{NWmodA-C*fB-9}
  313. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-9}
  314. \nwixadd{\nwixu }{module}{NWmodA-C*fB-9}
  315. \newsublabel{NWmodA-*-F}{{}{35}}
  316. \newsublabel{NWmodA-hea6-F}{{}{36}}
  317. \nwixadd{\nwixd }{addstring}{NWmodA-hea6-F}
  318. \nwixadd{\nwixd }{addmodule}{NWmodA-hea6-F}
  319. \nwixadd{\nwixd }{addnewline}{NWmodA-hea6-F}
  320. \nwixadd{\nwixu }{add:unpart}{NWmodA-hea6-F}
  321. \nwixadd{\nwixu }{Location}{NWmodA-hea6-F}
  322. \nwixadd{\nwixu }{Module}{NWmodA-hea6-F}
  323. \nwixadd{\nwixu }{module}{NWmodA-hea6-F}
  324. \newsublabel{NWmodA-C*fB-A}{{}{36}}
  325. \nwixadd{\nwixd }{add:unpart}{NWmodA-C*fB-A}
  326. \nwixadd{\nwixu }{append}{NWmodA-C*fB-A}
  327. \nwixadd{\nwixu }{Location}{NWmodA-C*fB-A}
  328. \nwixadd{\nwixu }{modpart}{NWmodA-C*fB-A}
  329. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-A}
  330. \nwixadd{\nwixu }{newmodpart}{NWmodA-C*fB-A}
  331. \newsublabel{NWmodA-C*fB-B}{{}{36}}
  332. \nwixadd{\nwixd }{newmodpart}{NWmodA-C*fB-B}
  333. \nwixadd{\nwixu }{checkptr}{NWmodA-C*fB-B}
  334. \nwixadd{\nwixu }{Location}{NWmodA-C*fB-B}
  335. \nwixadd{\nwixu }{malloc}{NWmodA-C*fB-B}
  336. \nwixadd{\nwixu }{modpart}{NWmodA-C*fB-B}
  337. \newsublabel{NWmodA-C*fB-C}{{}{37}}
  338. \nwixadd{\nwixd }{append}{NWmodA-C*fB-C}
  339. \nwixadd{\nwixu }{modpart}{NWmodA-C*fB-C}
  340. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-C}
  341. \newsublabel{NWmodA-stra-1}{{}{37}}
  342. \nwixadd{\nwixu }{impossible}{NWmodA-stra-1}
  343. \nwixadd{\nwixu }{strlen}{NWmodA-stra-1}
  344. \newsublabel{NWmodA-FunL-3}{{}{37}}
  345. \nwixadd{\nwixu }{append}{NWmodA-FunL-3}
  346. \nwixadd{\nwixu }{Location}{NWmodA-FunL-3}
  347. \nwixadd{\nwixu }{modpart}{NWmodA-FunL-3}
  348. \nwixadd{\nwixu }{module}{NWmodA-FunL-3}
  349. \nwixadd{\nwixu }{Module}{NWmodA-FunL-3}
  350. \nwixadd{\nwixu }{newmodpart}{NWmodA-FunL-3}
  351. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {2.5.2}Expanding modules}{38}}
  352. \newsublabel{NWmodA-hea6-G}{{}{38}}
  353. \nwixadd{\nwixd }{Parent}{NWmodA-hea6-G}
  354. \nwixadd{\nwixu }{expand}{NWmodA-hea6-G}
  355. \nwixadd{\nwixu }{Module}{NWmodA-hea6-G}
  356. \nwixadd{\nwixu }{module}{NWmodA-hea6-G}
  357. \newsublabel{NWmodA-C*fB-D}{{}{39}}
  358. \nwixadd{\nwixd }{expand}{NWmodA-C*fB-D}
  359. \nwixadd{\nwixu }{impossible}{NWmodA-C*fB-D}
  360. \nwixadd{\nwixu }{modpart}{NWmodA-C*fB-D}
  361. \nwixadd{\nwixu }{module}{NWmodA-C*fB-D}
  362. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-D}
  363. \nwixadd{\nwixu }{Parent}{NWmodA-C*fB-D}
  364. \newsublabel{NWmodA-thiQ-1}{{}{39}}
  365. \newsublabel{NWmodA-priE-1}{{}{40}}
  366. \nwixadd{\nwixu }{indent:unfor}{NWmodA-priE-1}
  367. \nwixadd{\nwixu }{limitcolumn}{NWmodA-priE-1}
  368. \nwixadd{\nwixu }{printloc}{NWmodA-priE-1}
  369. \newsublabel{NWmodA-priF-1}{{}{40}}
  370. \newsublabel{NWmodA-expF-1}{{}{40}}
  371. \nwixadd{\nwixu }{errormsg}{NWmodA-expF-1}
  372. \nwixadd{\nwixu }{expand}{NWmodA-expF-1}
  373. \nwixadd{\nwixu }{limitcolumn}{NWmodA-expF-1}
  374. \nwixadd{\nwixu }{lookup}{NWmodA-expF-1}
  375. \nwixadd{\nwixu }{module}{NWmodA-expF-1}
  376. \newsublabel{NWmodA-if*j-1}{{}{41}}
  377. \nwixadd{\nwixu }{errormsg}{NWmodA-if*j-1}
  378. \nwixadd{\nwixu }{seekcycle}{NWmodA-if*j-1}
  379. \newsublabel{NWmodA-FunL-4}{{}{41}}
  380. \nwixadd{\nwixu }{Module}{NWmodA-FunL-4}
  381. \nwixadd{\nwixu }{Parent}{NWmodA-FunL-4}
  382. \nwixadd{\nwixu }{seekcycle}{NWmodA-FunL-4}
  383. \newsublabel{NWmodA-C*fB-E}{{}{41}}
  384. \nwixadd{\nwixd }{seekcycle}{NWmodA-C*fB-E}
  385. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-E}
  386. \nwixadd{\nwixu }{Parent}{NWmodA-C*fB-E}
  387. \newsublabel{NWmodA-hea6-H}{{}{42}}
  388. \nwixadd{\nwixu }{Location}{NWmodA-hea6-H}
  389. \nwixadd{\nwixu }{printloc}{NWmodA-hea6-H}
  390. \newsublabel{NWmodA-C*fB-F}{{}{42}}
  391. \nwixadd{\nwixd }{printloc}{NWmodA-C*fB-F}
  392. \nwixadd{\nwixu }{Location}{NWmodA-C*fB-F}
  393. \newsublabel{NWmodA-wriW-1}{{}{43}}
  394. \newsublabel{NWmodA-comZ-1}{{}{43}}
  395. \nwixadd{\nwixu }{errormsg}{NWmodA-comZ-1}
  396. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {2.5.3}Other operations on completed modules}{44}}
  397. \newsublabel{NWmodA-hea6-I}{{}{44}}
  398. \nwixadd{\nwixu }{Module}{NWmodA-hea6-I}
  399. \nwixadd{\nwixu }{module}{NWmodA-hea6-I}
  400. \nwixadd{\nwixu }{remove:unfinal:unnewline}{NWmodA-hea6-I}
  401. \newsublabel{NWmodA-C*fB-G}{{}{44}}
  402. \nwixadd{\nwixd }{remove:unfinal:unnewline}{NWmodA-C*fB-G}
  403. \nwixadd{\nwixu }{impossible}{NWmodA-C*fB-G}
  404. \nwixadd{\nwixu }{modpart}{NWmodA-C*fB-G}
  405. \nwixadd{\nwixu }{Module}{NWmodA-C*fB-G}
  406. \nwixadd{\nwixu }{module}{NWmodA-C*fB-G}
  407. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {2.6}Support for looking up modules by name}{45}}
  408. \newsublabel{NWmodB-hea6-J}{{}{45}}
  409. \nwixadd{\nwixu }{apply:uneach:unmodule}{NWmodB-hea6-J}
  410. \nwixadd{\nwixu }{insert}{NWmodB-hea6-J}
  411. \nwixadd{\nwixu }{lookup}{NWmodB-hea6-J}
  412. \nwixadd{\nwixu }{Module}{NWmodB-hea6-J}
  413. \nwixadd{\nwixu }{module}{NWmodB-hea6-J}
  414. \newsublabel{NWmodB-*-G}{{}{45}}
  415. \nwixadd{\nwixu }{Module}{NWmodB-*-G}
  416. \nwixadd{\nwixu }{root}{NWmodB-*-G}
  417. \newsublabel{NWmodB-*-H}{{}{46}}
  418. \nwixadd{\nwixd }{insert}{NWmodB-*-H}
  419. \nwixadd{\nwixu }{Module}{NWmodB-*-H}
  420. \nwixadd{\nwixu }{newmodule}{NWmodB-*-H}
  421. \nwixadd{\nwixu }{root}{NWmodB-*-H}
  422. \newsublabel{NWmodB-AllV-1}{{}{46}}
  423. \nwixadd{\nwixu }{checkptr}{NWmodB-AllV-1}
  424. \nwixadd{\nwixu }{malloc}{NWmodB-AllV-1}
  425. \newsublabel{NWmodB-FunL-5}{{}{46}}
  426. \nwixadd{\nwixu }{Module}{NWmodB-FunL-5}
  427. \newsublabel{NWmodB-*-I}{{}{47}}
  428. \nwixadd{\nwixd }{lookup}{NWmodB-*-I}
  429. \nwixadd{\nwixu }{Module}{NWmodB-*-I}
  430. \nwixadd{\nwixu }{root}{NWmodB-*-I}
  431. \newsublabel{NWmodB-*-J}{{}{47}}
  432. \nwixadd{\nwixd }{apply:uneach:unmodule}{NWmodB-*-J}
  433. \nwixadd{\nwixu }{Module}{NWmodB-*-J}
  434. \nwixadd{\nwixu }{root}{NWmodB-*-J}
  435. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {3}Scanning for uses of identifiers}{48}}
  436. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.1}Main program}{48}}
  437. \newsublabel{NWfinB-*-K}{{}{48}}
  438. \nwixadd{\nwixu }{getline}{NWfinB-*-K}
  439. \newsublabel{NWfinB-*-L}{{}{48}}
  440. \nwixadd{\nwixd }{ALPHANUM}{NWfinB-*-L}
  441. \nwixadd{\nwixd }{SYMBOLS}{NWfinB-*-L}
  442. \nwixadd{\nwixu }{index}{NWfinB-*-L}
  443. \nwixadd{\nwixu }{Recognizer}{NWfinB-*-L}
  444. \newsublabel{NWfinB-*-M}{{}{49}}
  445. \newsublabel{NWfinB-*-N}{{}{49}}
  446. \nwixadd{\nwixu }{add:unuse:unmarkers}{NWfinB-*-N}
  447. \nwixadd{\nwixu }{ALPHANUM}{NWfinB-*-N}
  448. \nwixadd{\nwixu }{errorlevel}{NWfinB-*-N}
  449. \nwixadd{\nwixu }{errormsg}{NWfinB-*-N}
  450. \nwixadd{\nwixu }{index}{NWfinB-*-N}
  451. \nwixadd{\nwixu }{new:unrecognizer}{NWfinB-*-N}
  452. \nwixadd{\nwixu }{stop:unadding}{NWfinB-*-N}
  453. \nwixadd{\nwixu }{SYMBOLS}{NWfinB-*-N}
  454. \newsublabel{NWfinB-reax-1}{{}{50}}
  455. \nwixadd{\nwixu }{errormsg}{NWfinB-reax-1}
  456. \nwixadd{\nwixu }{read:unids}{NWfinB-reax-1}
  457. \newsublabel{NWfinB-locG-4}{{}{50}}
  458. \nwixadd{\nwixu }{read:unids}{NWfinB-locG-4}
  459. \newsublabel{NWfinB-*-O}{{}{50}}
  460. \nwixadd{\nwixd }{read:unids}{NWfinB-*-O}
  461. \nwixadd{\nwixu }{add:unident}{NWfinB-*-O}
  462. \nwixadd{\nwixu }{getline}{NWfinB-*-O}
  463. \nwixadd{\nwixu }{index}{NWfinB-*-O}
  464. \nwixadd{\nwixu }{strlen}{NWfinB-*-O}
  465. \newsublabel{NWfinB-addi-1}{{}{50}}
  466. \nwixadd{\nwixu }{add:unident}{NWfinB-addi-1}
  467. \nwixadd{\nwixu }{add:unuse:unmarkers}{NWfinB-addi-1}
  468. \nwixadd{\nwixu }{getline}{NWfinB-addi-1}
  469. \nwixadd{\nwixu }{index}{NWfinB-addi-1}
  470. \nwixadd{\nwixu }{is:unindex}{NWfinB-addi-1}
  471. \nwixadd{\nwixu }{stop:unadding}{NWfinB-addi-1}
  472. \nwixadd{\nwixu }{strlen}{NWfinB-addi-1}
  473. \newsublabel{NWfinB-locG-5}{{}{51}}
  474. \nwixadd{\nwixu }{add:unuse:unmarkers}{NWfinB-locG-5}
  475. \newsublabel{NWfinB-*-P}{{}{51}}
  476. \nwixadd{\nwixd }{add:unuse:unmarkers}{NWfinB-*-P}
  477. \nwixadd{\nwixu }{getline}{NWfinB-*-P}
  478. \nwixadd{\nwixu }{index}{NWfinB-*-P}
  479. \nwixadd{\nwixu }{is:unbegin}{NWfinB-*-P}
  480. \nwixadd{\nwixu }{is:unend}{NWfinB-*-P}
  481. \nwixadd{\nwixu }{is:unkeyword}{NWfinB-*-P}
  482. \nwixadd{\nwixu }{search:unfor:unident}{NWfinB-*-P}
  483. \nwixadd{\nwixu }{write:unindex:unuse}{NWfinB-*-P}
  484. \newsublabel{NWfinB-locG-6}{{}{51}}
  485. \nwixadd{\nwixu }{write:unindex:unuse}{NWfinB-locG-6}
  486. \newsublabel{NWfinB-*-Q}{{}{51}}
  487. \nwixadd{\nwixd }{write:unindex:unuse}{NWfinB-*-Q}
  488. \newsublabel{NWfinB-comf-1}{{}{51}}
  489. \nwixadd{\nwixu }{errormsg}{NWfinB-comf-1}
  490. \newsublabel{NWfinB-comf.2-1}{{}{51}}
  491. \nwixadd{\nwixu }{errormsg}{NWfinB-comf.2-1}
  492. \citation{aho:efficient}
  493. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {3.2}An Efficient String Matcher (by Preston Briggs)}{52}}
  494. \newlabel{preston}{{3.2}{52}}
  495. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {3.2.1}Introduction}{52}}
  496. \@writefile{toc}{\string\contentsline\space {paragraph}{Boilerplate}{52}}
  497. \newsublabel{NWrecC-*-R}{{}{52}}
  498. \newsublabel{NWrecC-hea6-K}{{}{52}}
  499. \newsublabel{NWrecC-IncD-1}{{}{52}}
  500. \nwixadd{\nwixd }{strchr}{NWrecC-IncD-1}
  501. \nwixadd{\nwixd }{strcpy}{NWrecC-IncD-1}
  502. \nwixadd{\nwixd }{strlen}{NWrecC-IncD-1}
  503. \newsublabel{NWrecC-IncD-2}{{}{52}}
  504. \nwixadd{\nwixd }{malloc}{NWrecC-IncD-2}
  505. \nwixadd{\nwixd }{calloc}{NWrecC-IncD-2}
  506. \nwixadd{\nwixd }{free}{NWrecC-IncD-2}
  507. \@writefile{toc}{\string\contentsline\space {paragraph}{External Interface}{53}}
  508. \newsublabel{NWrecC-ExpJ-1}{{}{53}}
  509. \nwixadd{\nwixd }{new:unrecognizer}{NWrecC-ExpJ-1}
  510. \nwixadd{\nwixu }{Recognizer}{NWrecC-ExpJ-1}
  511. \newsublabel{NWrecC-ExpP-1}{{}{53}}
  512. \nwixadd{\nwixd }{Recognizer}{NWrecC-ExpP-1}
  513. \nwixadd{\nwixu }{recognizer}{NWrecC-ExpP-1}
  514. \newsublabel{NWrecC-ExpJ-2}{{}{53}}
  515. \nwixadd{\nwixd }{add:unident}{NWrecC-ExpJ-2}
  516. \nwixadd{\nwixd }{stop:unadding}{NWrecC-ExpJ-2}
  517. \nwixadd{\nwixu }{Recognizer}{NWrecC-ExpJ-2}
  518. \newsublabel{NWrecC-ExpJ-3}{{}{53}}
  519. \nwixadd{\nwixd }{search:unfor:unident}{NWrecC-ExpJ-3}
  520. \nwixadd{\nwixu }{Callback}{NWrecC-ExpJ-3}
  521. \nwixadd{\nwixu }{Recognizer}{NWrecC-ExpJ-3}
  522. \newsublabel{NWrecC-ExpP-2}{{}{53}}
  523. \nwixadd{\nwixd }{Callback}{NWrecC-ExpP-2}
  524. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {3.2.2}Defining the Automata}{54}}
  525. \newsublabel{NWrecC-TypG-1}{{}{54}}
  526. \nwixadd{\nwixd }{Goto:unNode}{NWrecC-TypG-1}
  527. \nwixadd{\nwixd }{Move:unNode}{NWrecC-TypG-1}
  528. \nwixadd{\nwixu }{goto:unnode}{NWrecC-TypG-1}
  529. \nwixadd{\nwixu }{move:unnode}{NWrecC-TypG-1}
  530. \newsublabel{NWrecC-TypG-2}{{}{54}}
  531. \nwixadd{\nwixd }{Name:unNode}{NWrecC-TypG-2}
  532. \newsublabel{NWrecC-TypG-3}{{}{54}}
  533. \nwixadd{\nwixd }{move:unnode}{NWrecC-TypG-3}
  534. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-TypG-3}
  535. \nwixadd{\nwixu }{Move:unNode}{NWrecC-TypG-3}
  536. \nwixadd{\nwixu }{state}{NWrecC-TypG-3}
  537. \newsublabel{NWrecC-TypG-4}{{}{54}}
  538. \nwixadd{\nwixd }{goto:unnode}{NWrecC-TypG-4}
  539. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-TypG-4}
  540. \nwixadd{\nwixu }{Move:unNode}{NWrecC-TypG-4}
  541. \nwixadd{\nwixu }{Name:unNode}{NWrecC-TypG-4}
  542. \nwixadd{\nwixu }{state}{NWrecC-TypG-4}
  543. \newsublabel{NWrecC-TypG-5}{{}{55}}
  544. \nwixadd{\nwixd }{recognizer}{NWrecC-TypG-5}
  545. \nwixadd{\nwixd }{root}{NWrecC-TypG-5}
  546. \nwixadd{\nwixd }{depths}{NWrecC-TypG-5}
  547. \nwixadd{\nwixd }{max:undepth}{NWrecC-TypG-5}
  548. \nwixadd{\nwixd }{alphas}{NWrecC-TypG-5}
  549. \nwixadd{\nwixd }{syms}{NWrecC-TypG-5}
  550. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-TypG-5}
  551. \@writefile{toc}{\string\contentsline\space {paragraph}{A Utility Function}{55}}
  552. \newsublabel{NWrecC-FunK-1}{{}{55}}
  553. \nwixadd{\nwixd }{goto:unlookup}{NWrecC-FunK-1}
  554. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-FunK-1}
  555. \nwixadd{\nwixu }{Move:unNode}{NWrecC-FunK-1}
  556. \nwixadd{\nwixu }{state}{NWrecC-FunK-1}
  557. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {3.2.3}Building the Automata}{56}}
  558. \newsublabel{NWrecC-FunK-2}{{}{56}}
  559. \nwixadd{\nwixd }{Recognizer}{NWrecC-FunK-2}
  560. \nwixadd{\nwixu }{alphas}{NWrecC-FunK-2}
  561. \nwixadd{\nwixu }{calloc}{NWrecC-FunK-2}
  562. \nwixadd{\nwixu }{depths}{NWrecC-FunK-2}
  563. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-FunK-2}
  564. \nwixadd{\nwixu }{max:undepth}{NWrecC-FunK-2}
  565. \nwixadd{\nwixu }{new:unrecognizer}{NWrecC-FunK-2}
  566. \nwixadd{\nwixu }{recognizer}{NWrecC-FunK-2}
  567. \nwixadd{\nwixu }{syms}{NWrecC-FunK-2}
  568. \@writefile{toc}{\string\contentsline\space {paragraph}{Building the Goto Table}{57}}
  569. \newsublabel{NWrecC-FunK-3}{{}{57}}
  570. \nwixadd{\nwixd }{add:unident}{NWrecC-FunK-3}
  571. \nwixadd{\nwixu }{goto:unlookup}{NWrecC-FunK-3}
  572. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-FunK-3}
  573. \nwixadd{\nwixu }{Recognizer}{NWrecC-FunK-3}
  574. \nwixadd{\nwixu }{root}{NWrecC-FunK-3}
  575. \newsublabel{NWrecC-CreV-1}{{}{57}}
  576. \nwixadd{\nwixu }{calloc}{NWrecC-CreV-1}
  577. \nwixadd{\nwixu }{depths}{NWrecC-CreV-1}
  578. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-CreV-1}
  579. \nwixadd{\nwixu }{root}{NWrecC-CreV-1}
  580. \newsublabel{NWrecC-Cret-1}{{}{58}}
  581. \nwixadd{\nwixu }{calloc}{NWrecC-Cret-1}
  582. \nwixadd{\nwixu }{depths}{NWrecC-Cret-1}
  583. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-Cret-1}
  584. \nwixadd{\nwixu }{malloc}{NWrecC-Cret-1}
  585. \nwixadd{\nwixu }{max:undepth}{NWrecC-Cret-1}
  586. \nwixadd{\nwixu }{Move:unNode}{NWrecC-Cret-1}
  587. \nwixadd{\nwixu }{state}{NWrecC-Cret-1}
  588. \newsublabel{NWrecC-Doud-1}{{}{58}}
  589. \nwixadd{\nwixu }{calloc}{NWrecC-Doud-1}
  590. \nwixadd{\nwixu }{depths}{NWrecC-Doud-1}
  591. \nwixadd{\nwixu }{free}{NWrecC-Doud-1}
  592. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-Doud-1}
  593. \nwixadd{\nwixu }{max:undepth}{NWrecC-Doud-1}
  594. \newsublabel{NWrecC-Setq-1}{{}{58}}
  595. \nwixadd{\nwixu }{malloc}{NWrecC-Setq-1}
  596. \nwixadd{\nwixu }{Name:unNode}{NWrecC-Setq-1}
  597. \nwixadd{\nwixu }{strcpy}{NWrecC-Setq-1}
  598. \nwixadd{\nwixu }{strlen}{NWrecC-Setq-1}
  599. \@writefile{toc}{\string\contentsline\space {paragraph}{Building the Failure Functions}{59}}
  600. \newsublabel{NWrecC-FunK-4}{{}{59}}
  601. \nwixadd{\nwixd }{stop:unadding}{NWrecC-FunK-4}
  602. \nwixadd{\nwixu }{depths}{NWrecC-FunK-4}
  603. \nwixadd{\nwixu }{goto:unlookup}{NWrecC-FunK-4}
  604. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-FunK-4}
  605. \nwixadd{\nwixu }{malloc}{NWrecC-FunK-4}
  606. \nwixadd{\nwixu }{max:undepth}{NWrecC-FunK-4}
  607. \nwixadd{\nwixu }{Move:unNode}{NWrecC-FunK-4}
  608. \nwixadd{\nwixu }{Name:unNode}{NWrecC-FunK-4}
  609. \nwixadd{\nwixu }{Recognizer}{NWrecC-FunK-4}
  610. \nwixadd{\nwixu }{root}{NWrecC-FunK-4}
  611. \nwixadd{\nwixu }{state}{NWrecC-FunK-4}
  612. \@writefile{toc}{\string\contentsline\space {subsubsection}{\string\numberline\space {3.2.4}Using the Automata}{60}}
  613. \newsublabel{NWrecC-FunK-5}{{}{60}}
  614. \nwixadd{\nwixd }{search:unfor:unident}{NWrecC-FunK-5}
  615. \nwixadd{\nwixu }{Callback}{NWrecC-FunK-5}
  616. \nwixadd{\nwixu }{Goto:unNode}{NWrecC-FunK-5}
  617. \nwixadd{\nwixu }{Recognizer}{NWrecC-FunK-5}
  618. \nwixadd{\nwixu }{state}{NWrecC-FunK-5}
  619. \newsublabel{NWrecC-GotJ-1}{{}{60}}
  620. \nwixadd{\nwixu }{goto:unlookup}{NWrecC-GotJ-1}
  621. \nwixadd{\nwixu }{root}{NWrecC-GotJ-1}
  622. \nwixadd{\nwixu }{state}{NWrecC-GotJ-1}
  623. \newsublabel{NWrecC-Pera-1}{{}{60}}
  624. \nwixadd{\nwixu }{Name:unNode}{NWrecC-Pera-1}
  625. \nwixadd{\nwixu }{reject:unmatch}{NWrecC-Pera-1}
  626. \nwixadd{\nwixu }{state}{NWrecC-Pera-1}
  627. \@writefile{toc}{\string\contentsline\space {paragraph}{Rejecting Matches}{61}}
  628. \newsublabel{NWrecC-FunK-6}{{}{61}}
  629. \nwixadd{\nwixd }{reject:unmatch}{NWrecC-FunK-6}
  630. \nwixadd{\nwixu }{alphas}{NWrecC-FunK-6}
  631. \nwixadd{\nwixu }{Recognizer}{NWrecC-FunK-6}
  632. \nwixadd{\nwixu }{strchr}{NWrecC-FunK-6}
  633. \nwixadd{\nwixu }{strlen}{NWrecC-FunK-6}
  634. \nwixadd{\nwixu }{syms}{NWrecC-FunK-6}
  635. \newsublabel{NWrecC-ProA-1}{{}{61}}
  636. \nwixadd{\nwixu }{Recognizer}{NWrecC-ProA-1}
  637. \nwixadd{\nwixu }{reject:unmatch}{NWrecC-ProA-1}
  638. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {4}Utility functions}{62}}
  639. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.1}Line-oriented input}{62}}
  640. \newsublabel{NWgetA-*-S}{{}{62}}
  641. \nwixadd{\nwixd }{START:unSIZE}{NWgetA-*-S}
  642. \nwixadd{\nwixd }{buf:unsize}{NWgetA-*-S}
  643. \nwixadd{\nwixd }{buf1}{NWgetA-*-S}
  644. \nwixadd{\nwixd }{buf2}{NWgetA-*-S}
  645. \nwixadd{\nwixu }{getline}{NWgetA-*-S}
  646. \newsublabel{NWgetA-hea6-L}{{}{62}}
  647. \nwixadd{\nwixu }{getline}{NWgetA-hea6-L}
  648. \nwixadd{\nwixu }{getline:unexpand}{NWgetA-hea6-L}
  649. \nwixadd{\nwixu }{tabsize}{NWgetA-hea6-L}
  650. \newsublabel{NWgetA-C*fB-H}{{}{63}}
  651. \nwixadd{\nwixu }{buf1}{NWgetA-C*fB-H}
  652. \nwixadd{\nwixu }{buf2}{NWgetA-C*fB-H}
  653. \nwixadd{\nwixu }{buf:unsize}{NWgetA-C*fB-H}
  654. \nwixadd{\nwixu }{checkptr}{NWgetA-C*fB-H}
  655. \newsublabel{NWgetA-C*fB-I}{{}{63}}
  656. \nwixadd{\nwixd }{getline}{NWgetA-C*fB-I}
  657. \nwixadd{\nwixu }{buf1}{NWgetA-C*fB-I}
  658. \nwixadd{\nwixu }{buf:unsize}{NWgetA-C*fB-I}
  659. \nwixadd{\nwixu }{strlen}{NWgetA-C*fB-I}
  660. \newsublabel{NWgetA-C*fB-J}{{}{64}}
  661. \nwixadd{\nwixd }{getline:unexpand}{NWgetA-C*fB-J}
  662. \nwixadd{\nwixu }{buf1}{NWgetA-C*fB-J}
  663. \nwixadd{\nwixu }{buf2}{NWgetA-C*fB-J}
  664. \nwixadd{\nwixu }{getline}{NWgetA-C*fB-J}
  665. \nwixadd{\nwixu }{tabsize}{NWgetA-C*fB-J}
  666. \newsublabel{NWgetA-if*h-1}{{}{64}}
  667. \nwixadd{\nwixu }{buf1}{NWgetA-if*h-1}
  668. \nwixadd{\nwixu }{buf2}{NWgetA-if*h-1}
  669. \nwixadd{\nwixu }{buf:unsize}{NWgetA-if*h-1}
  670. \nwixadd{\nwixu }{checkptr}{NWgetA-if*h-1}
  671. \nwixadd{\nwixu }{malloc}{NWgetA-if*h-1}
  672. \newsublabel{NWgetA-if*z-1}{{}{64}}
  673. \nwixadd{\nwixu }{buf1}{NWgetA-if*z-1}
  674. \nwixadd{\nwixu }{buf:unsize}{NWgetA-if*z-1}
  675. \nwixadd{\nwixu }{columnwidth}{NWgetA-if*z-1}
  676. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.2}Managing indentation and columns}{65}}
  677. \newsublabel{NWcolA-hea6-M}{{}{65}}
  678. \nwixadd{\nwixd }{tabsize}{NWcolA-hea6-M}
  679. \nwixadd{\nwixu }{columnwidth}{NWcolA-hea6-M}
  680. \nwixadd{\nwixu }{indent:unfor}{NWcolA-hea6-M}
  681. \nwixadd{\nwixu }{limitcolumn}{NWcolA-hea6-M}
  682. \newsublabel{NWcolA-*-T}{{}{65}}
  683. \nwixadd{\nwixu }{tabsize}{NWcolA-*-T}
  684. \newsublabel{NWcolA-*-U}{{}{65}}
  685. \nwixadd{\nwixd }{columnwidth}{NWcolA-*-U}
  686. \nwixadd{\nwixu }{limitcolumn}{NWcolA-*-U}
  687. \newsublabel{NWcolA-*-V}{{}{65}}
  688. \nwixadd{\nwixd }{limitcolumn}{NWcolA-*-V}
  689. \nwixadd{\nwixu }{tabsize}{NWcolA-*-V}
  690. \newsublabel{NWcolA-*-W}{{}{66}}
  691. \nwixadd{\nwixd }{indent:unfor}{NWcolA-*-W}
  692. \nwixadd{\nwixu }{tabsize}{NWcolA-*-W}
  693. \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {4.3}Error messages}{67}}
  694. \newsublabel{NWerr9-*-X}{{}{67}}
  695. \newsublabel{NWerr9-hea6-N}{{}{67}}
  696. \nwixadd{\nwixd }{errorlevel}{NWerr9-hea6-N}
  697. \newsublabel{NWerr9-C*fB-K}{{}{67}}
  698. \nwixadd{\nwixu }{errorlevel}{NWerr9-C*fB-K}
  699. \newsublabel{NWerr9-hea6-O}{{}{68}}
  700. \nwixadd{\nwixd }{errormsg}{NWerr9-hea6-O}
  701. \nwixadd{\nwixd }{overflow}{NWerr9-hea6-O}
  702. \nwixadd{\nwixd }{impossible}{NWerr9-hea6-O}
  703. \nwixadd{\nwixd }{checkptr}{NWerr9-hea6-O}
  704. \nwixadd{\nwixu }{errorlevel}{NWerr9-hea6-O}
  705. \newsublabel{NWerr9-C*fB-L}{{}{68}}
  706. \nwixadd{\nwixd }{errormsg}{NWerr9-C*fB-L}
  707. \nwixadd{\nwixu }{errorlevel}{NWerr9-C*fB-L}
  708. \newsublabel{NWerr9-hea6-P}{{}{68}}
  709. \nwixadd{\nwixu }{errorat}{NWerr9-hea6-P}
  710. \nwixadd{\nwixu }{errorlevel}{NWerr9-hea6-P}
  711. \newsublabel{NWerr9-C*fB-M}{{}{68}}
  712. \nwixadd{\nwixd }{errorat}{NWerr9-C*fB-M}
  713. \nwixadd{\nwixu }{errorlevel}{NWerr9-C*fB-M}
  714. \newsublabel{NWerr9-setm-1}{{}{69}}
  715. \nwixadd{\nwixu }{errorlevel}{NWerr9-setm-1}
  716. \newsublabel{NWerr9-croR-1}{{}{69}}
  717. \nwixadds{c}{{*}{NWmarB-*-1}{\nwixd {NWmarB-*-1}\nwixd {NWmarB-*-2}\nwixd {NWmar9-*-3}\nwixd {NWmai7-*-4}\nwixd {NWnotB-*-5}\nwixd {NWnotB-*-6}\nwixd {NWnotB-*-7}\nwixd {NWnotB-*-8}\nwixd {NWnotB-*-9}\nwixd {NWmat8-*-A}\nwixd {NWmnt6-*-B}\nwixd {NWmnt6-*-C}\nwixd {NWmnt6-*-D}\nwixd {NWmnt6-*-E}\nwixd {NWmodA-*-F}\nwixd {NWmodB-*-G}\nwixd {NWmodB-*-H}\nwixd {NWmodB-*-I}\nwixd {NWmodB-*-J}\nwixd {NWfinB-*-K}\nwixd {NWfinB-*-L}\nwixd {NWfinB-*-M}\nwixd {NWfinB-*-N}\nwixd {NWfinB-*-O}\nwixd {NWfinB-*-P}\nwixd {NWfinB-*-Q}\nwixd {NWrecC-*-R}\nwixd {NWgetA-*-S}\nwixd {NWcolA-*-T}\nwixd {NWcolA-*-U}\nwixd {NWcolA-*-V}\nwixd {NWcolA-*-W}\nwixd {NWerr9-*-X}\nwixd {NWstrA-*-Y}}}
  718. \nwixadds{c}{{add a trailing newline if one was missing}{NWmarB-addf-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-addf-1}}}
  719. \nwixadds{c}{{add uses to stdin, grabbing defns from stdin}{NWfinB-addi-1}{\nwixu {NWfinB-*-N}\nwixd {NWfinB-addi-1}}}
  720. \nwixadds{c}{{Allocate new tnode in **rootptr}{NWmodB-AllV-1}{\nwixu {NWmodB-*-H}\nwixd {NWmodB-AllV-1}}}
  721. \nwixadds{c}{{C functions}{NWmar9-C*fB-1}{\nwixu {NWmar9-*-3}\nwixd {NWmar9-C*fB-1}\nwixd {NWmar9-C*fB-2}\nwixd {NWmar9-C*fB-3}\nwixd {NWmar9-C*fB-4}\nwixd {NWmar9-C*fB-5}\nwixd {NWmar9-C*fB-6}\nwixd {NWmar9-C*fB-7}\nwixd {NWmar9-C*fB-8}\nwixd {NWmodA-C*fB-9}\nwixu {NWmodA-*-F}\nwixd {NWmodA-C*fB-A}\nwixd {NWmodA-C*fB-B}\nwixd {NWmodA-C*fB-C}\nwixd {NWmodA-C*fB-D}\nwixd {NWmodA-C*fB-E}\nwixd {NWmodA-C*fB-F}\nwixd {NWmodA-C*fB-G}\nwixu {NWgetA-*-S}\nwixd {NWgetA-C*fB-H}\nwixd {NWgetA-C*fB-I}\nwixd {NWgetA-C*fB-J}\nwixu {NWerr9-*-X}\nwixd {NWerr9-C*fB-K}\nwixd {NWerr9-C*fB-L}\nwixd {NWerr9-C*fB-M}}}
  722. \nwixadds{c}{{Check a bunch of ``mistake indicators''}{NWmarB-Ched-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-Ched-1}}}
  723. \nwixadds{c}{{complain about bad format character}{NWmodA-comZ-1}{\nwixu {NWmodA-wriW-1}\nwixd {NWmodA-comZ-1}}}
  724. \nwixadds{c}{{complain about \code {}filename\edoc {} and \code {}return\edoc {}}{NWmnt6-comg-1}{\nwixu {NWmnt6-*-E}\nwixd {NWmnt6-comg-1}}}
  725. \nwixadds{c}{{complain about opening temp file and exit}{NWfinB-comf-1}{\nwixu {NWfinB-addi-1}\nwixd {NWfinB-comf-1}}}
  726. \nwixadds{c}{{complain about writing temp file and exit}{NWfinB-comf.2-1}{\nwixu {NWfinB-addi-1}\nwixd {NWfinB-comf.2-1}}}
  727. \nwixadds{c}{{complain and correct unmatched open quote, if any}{NWmarB-comn-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-comn-1}}}
  728. \nwixadds{c}{{complain and \code {}return\edoc {} if \code {}root\ ==\ NULL\edoc {}}{NWmnt6-comh-1}{\nwixu {NWmnt6-*-E}\nwixd {NWmnt6-comh-1}}}
  729. \nwixadds{c}{{complain of botched code chunk}{NWnotB-comU-1}{\nwixu {NWnotB-*-7}\nwixd {NWnotB-comU-1}}}
  730. \nwixadds{c}{{convert a code line}{NWmarB-conJ-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-conJ-1}}}
  731. \nwixadds{c}{{convert a documentation line}{NWmarB-conS-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-conS-1}}}
  732. \nwixadds{c}{{copy all lines from \code {}in\edoc {} to \code {}out\edoc {}, adding markup}{NWmarB-copq-1}{\nwixu {NWmarB-*-1}\nwixd {NWmarB-copq-1}}}
  733. \nwixadds{c}{{copy module name into \code {}modname\edoc {}}{NWnotB-copX-1}{\nwixu {NWnotB-*-7}\nwixd {NWnotB-copX-1}}}
  734. \nwixadds{c}{{Create a new goto entry and attach to \code {}q\edoc {}'s move list}{NWrecC-Cret-1}{\nwixu {NWrecC-FunK-3}\nwixd {NWrecC-Cret-1}}}
  735. \nwixadds{c}{{Create an entry for \code {}root[c]\edoc {}}{NWrecC-CreV-1}{\nwixu {NWrecC-FunK-3}\nwixd {NWrecC-CreV-1}}}
  736. \nwixadds{c}{{crock for non-ANSI machines}{NWerr9-croR-1}{\nwixd {NWerr9-croR-1}}}
  737. \nwixadds{c}{{data definitions}{NWmar9-datG-1}{\nwixu {NWmar9-*-3}\nwixd {NWmar9-datG-1}\nwixd {NWmar9-datG-2}}}
  738. \nwixadds{c}{{Double the size of the \code {}depths\edoc {} array}{NWrecC-Doud-1}{\nwixu {NWrecC-Cret-1}\nwixd {NWrecC-Doud-1}}}
  739. \nwixadds{c}{{emit index definitions and index newline}{NWmarB-emie-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-emie-1}}}
  740. \nwixadds{c}{{Error exit from getmodname}{NWmar9-ErrQ-1}{\nwixu {NWmar9-C*fB-4}\nwixd {NWmar9-ErrQ-1}}}
  741. \nwixadds{c}{{error exit from \code {}starts\_code\edoc {}}{NWmar9-errV-1}{\nwixu {NWmar9-C*fB-4}\nwixd {NWmar9-errV-1}}}
  742. \nwixadds{c}{{expand a module}{NWmodA-expF-1}{\nwixu {NWmodA-C*fB-D}\nwixd {NWmodA-expF-1}}}
  743. \nwixadds{c}{{expand \code {}root\edoc {} onto \code {}fp\edoc {} and close the file}{NWmnt6-expk-1}{\nwixu {NWmnt6-*-E}\nwixd {NWmnt6-expk-1}}}
  744. \nwixadds{c}{{Exported prototypes}{NWrecC-ExpJ-1}{\nwixu {NWrecC-hea6-K}\nwixd {NWrecC-ExpJ-1}\nwixd {NWrecC-ExpJ-2}\nwixd {NWrecC-ExpJ-3}}}
  745. \nwixadds{c}{{Exported type definitions}{NWrecC-ExpP-1}{\nwixu {NWrecC-hea6-K}\nwixd {NWrecC-ExpP-1}\nwixd {NWrecC-ExpP-2}}}
  746. \nwixadds{c}{{first time through, assert we got the length right}{NWmar9-firo-1}{\nwixu {NWmar9-C*fB-2}\nwixd {NWmar9-firo-1}}}
  747. \nwixadds{c}{{Function declarations}{NWnotB-FunL-1}{\nwixu {NWnotB-*-6}\nwixd {NWnotB-FunL-1}\nwixd {NWnotB-FunL-2}\nwixu {NWmodA-*-F}\nwixd {NWmodA-FunL-3}\nwixd {NWmodA-FunL-4}\nwixu {NWmodB-*-G}\nwixd {NWmodB-FunL-5}}}
  748. \nwixadds{c}{{Function definitions}{NWrecC-FunK-1}{\nwixu {NWrecC-*-R}\nwixd {NWrecC-FunK-1}\nwixd {NWrecC-FunK-2}\nwixd {NWrecC-FunK-3}\nwixd {NWrecC-FunK-4}\nwixd {NWrecC-FunK-5}\nwixd {NWrecC-FunK-6}}}
  749. \nwixadds{c}{{Goto the next state}{NWrecC-GotJ-1}{\nwixu {NWrecC-FunK-5}\nwixd {NWrecC-GotJ-1}}}
  750. \nwixadds{c}{{handle argument in argument \code {}i\edoc {}}{NWmai7-hanX-1}{\nwixu {NWmai7-proM-1}\nwixd {NWmai7-hanX-1}}}
  751. \nwixadds{c}{{handle option in argument \code {}i\edoc {}}{NWmai7-hanV-1}{\nwixu {NWmai7-proM-1}\nwixd {NWmai7-hanV-1}}}
  752. \nwixadds{c}{{handle option in \code {}argv[i]\edoc {}}{NWmnt6-hanS-1}{\nwixu {NWmnt6-*-B}\nwixd {NWmnt6-hanS-1}}}
  753. \nwixadds{c}{{handle \code {}-t\edoc {}}{NWmarB-hanD-1}{\nwixu {NWmarB-*-2}\nwixd {NWmarB-hanD-1}}}
  754. \nwixadds{c}{{header}{NWmar9-hea6-1}{\nwixd {NWmar9-hea6-1}\nwixd {NWmar9-hea6-2}\nwixd {NWmar9-hea6-3}\nwixd {NWmar9-hea6-4}\nwixd {NWmar9-hea6-5}\nwixd {NWmar9-hea6-6}\nwixd {NWmar9-hea6-7}\nwixd {NWmar9-hea6-8}\nwixd {NWnotB-hea6-9}\nwixd {NWnotB-hea6-A}\nwixd {NWmat8-hea6-B}\nwixd {NWmodA-hea6-C}\nwixd {NWmodA-hea6-D}\nwixd {NWmodA-hea6-E}\nwixd {NWmodA-hea6-F}\nwixd {NWmodA-hea6-G}\nwixd {NWmodA-hea6-H}\nwixd {NWmodA-hea6-I}\nwixd {NWmodB-hea6-J}\nwixu {NWrecC-*-R}\nwixd {NWrecC-hea6-K}\nwixd {NWgetA-hea6-L}\nwixd {NWcolA-hea6-M}\nwixd {NWerr9-hea6-N}\nwixd {NWerr9-hea6-O}\nwixd {NWerr9-hea6-P}\nwixd {NWstrA-hea6-Q}}}
  755. \nwixadds{c}{{if \code {}buf1==NULL\edoc {}, allocate initial buffers}{NWgetA-if*h-1}{\nwixu {NWgetA-C*fB-I}\nwixd {NWgetA-if*h-1}}}
  756. \nwixadds{c}{{if \code {}columnwidth(buf1)\ >\ buf\_size\ -\ 1\edoc {}, allocate new buffers}{NWgetA-if*z-1}{\nwixu {NWgetA-C*fB-J}\nwixd {NWgetA-if*z-1}}}
  757. \nwixadds{c}{{if file \code {}filename\edoc {} is as file \code {}tempname\edoc {}, remove \code {}tempname\edoc {} and \code {}return\edoc {}}{NWmnt6-if*1I-1}{\nwixu {NWmnt6-*-E}\nwixd {NWmnt6-if*1I-1}}}
  758. \nwixadds{c}{{if \code {}line==NULL\edoc {} die of premature end of file}{NWnotB-if*k-1}{\nwixu {NWnotB-*-7}\nwixu {NWnotB-*-9}\nwixd {NWnotB-if*k-1}}}
  759. \nwixadds{c}{{if \code {}mp\edoc {} is an ancestor, complain and return}{NWmodA-if*j-1}{\nwixu {NWmodA-C*fB-D}\nwixd {NWmodA-if*j-1}}}
  760. \nwixadds{c}{{Include files}{NWrecC-IncD-1}{\nwixu {NWrecC-*-R}\nwixd {NWrecC-IncD-1}\nwixd {NWrecC-IncD-2}}}
  761. \nwixadds{c}{{local prototypes}{NWmnt6-locG-1}{\nwixu {NWmnt6-*-B}\nwixd {NWmnt6-locG-1}\nwixd {NWmnt6-locG-2}\nwixd {NWmnt6-locG-3}\nwixu {NWfinB-*-M}\nwixd {NWfinB-locG-4}\nwixd {NWfinB-locG-5}\nwixd {NWfinB-locG-6}}}
  762. \nwixadds{c}{{Perform the callback for any outputs}{NWrecC-Pera-1}{\nwixu {NWrecC-FunK-5}\nwixd {NWrecC-Pera-1}}}
  763. \nwixadds{c}{{print a newline}{NWmodA-priF-1}{\nwixu {NWmodA-C*fB-D}\nwixd {NWmodA-priF-1}}}
  764. \nwixadds{c}{{print a string}{NWmodA-priE-1}{\nwixu {NWmodA-C*fB-D}\nwixd {NWmodA-priE-1}}}
  765. \nwixadds{c}{{process argument \code {}i\edoc {}}{NWmai7-proM-1}{\nwixu {NWmai7-*-4}\nwixd {NWmai7-proM-1}}}
  766. \nwixadds{c}{{Prototypes}{NWrecC-ProA-1}{\nwixu {NWrecC-*-R}\nwixd {NWrecC-ProA-1}}}
  767. \nwixadds{c}{{quit if we couldn't find the root}{NWnotB-quiX-1}{\nwixu {NWnotB-*-6}\nwixd {NWnotB-quiX-1}}}
  768. \nwixadds{c}{{read identifiers to be defined from files named in \code {}argv\edoc {}}{NWfinB-reax-1}{\nwixu {NWfinB-*-N}\nwixd {NWfinB-reax-1}}}
  769. \nwixadds{c}{{read standard input into tree}{NWmnt6-reaT-1}{\nwixu {NWmnt6-*-B}\nwixd {NWmnt6-reaT-1}}}
  770. \nwixadds{c}{{remember if a newline was missing from the last line}{NWmarB-remq-1}{\nwixu {NWmarB-copq-1}\nwixd {NWmarB-remq-1}}}
  771. \nwixadds{c}{{repeat \code {}line\ =\ getline(in);\edoc {} until EOF, \code {}@defn\edoc {}, or \code {}@text\edoc {}}{NWnotB-rep13-1}{\nwixu {NWnotB-*-7}\nwixd {NWnotB-rep13-1}}}
  772. \nwixadds{c}{{save name from \code {}line\edoc {} (\code {}@file\ ...\edoc {}) into \code {}loc.filename\edoc {}}{NWnotB-savz-1}{\nwixu {NWnotB-tra1A-1}\nwixd {NWnotB-savz-1}}}
  773. \nwixadds{c}{{set \code {}errorlevel\edoc {} and print \code {}s\edoc {} with \code {}args\edoc {}}{NWerr9-setm-1}{\nwixu {NWerr9-C*fB-L}\nwixu {NWerr9-C*fB-M}\nwixd {NWerr9-setm-1}}}
  774. \nwixadds{c}{{Set \code {}q->output\edoc {} to \code {}id\edoc {} (if not already present)}{NWrecC-Setq-1}{\nwixu {NWrecC-FunK-3}\nwixd {NWrecC-Setq-1}}}
  775. \nwixadds{c}{{state and printing definitions}{NWmarB-staU-1}{\nwixd {NWmarB-staU-1}\nwixu {NWmarB-*-1}}}
  776. \nwixadds{c}{{strip final newline from p->contents}{NWmodA-stra-1}{\nwixu {NWmodA-C*fB-B}\nwixd {NWmodA-stra-1}}}
  777. \nwixadds{c}{{thismodule = {mp, parent};}{NWmodA-thiQ-1}{\nwixu {NWmodA-C*fB-D}\nwixd {NWmodA-thiQ-1}}}
  778. \nwixadds{c}{{track line numbers, then \code {}continue\edoc {} unless \code {}line\edoc {} is \code {}@begin\ code\edoc {}}{NWnotB-tra1A-1}{\nwixu {NWnotB-*-7}\nwixd {NWnotB-tra1A-1}}}
  779. \nwixadds{c}{{Type definitions}{NWrecC-TypG-1}{\nwixu {NWrecC-*-R}\nwixd {NWrecC-TypG-1}\nwixd {NWrecC-TypG-2}\nwixd {NWrecC-TypG-3}\nwixd {NWrecC-TypG-4}\nwixd {NWrecC-TypG-5}}}
  780. \nwixadds{c}{{write out all conforming roots}{NWmnt6-wriU-1}{\nwixd {NWmnt6-wriU-1}\nwixu {NWmnt6-hanS-1}}}
  781. \nwixadds{c}{{write out the line number pragma}{NWmodA-wriW-1}{\nwixu {NWmodA-C*fB-F}\nwixd {NWmodA-wriW-1}}}
  782. \nwixadds{i}{{add\_ident}{add:unident}}
  783. \nwixadds{i}{{addmodule}{addmodule}}
  784. \nwixadds{i}{{addnewline}{addnewline}}
  785. \nwixadds{i}{{add\_part}{add:unpart}}
  786. \nwixadds{i}{{addstring}{addstring}}
  787. \nwixadds{i}{{add\_use\_markers}{add:unuse:unmarkers}}
  788. \nwixadds{i}{{add\_uses\_to\_usecounts}{add:unuses:unto:unusecounts}}
  789. \nwixadds{i}{{ALPHANUM}{ALPHANUM}}
  790. \nwixadds{i}{{alphas}{alphas}}
  791. \nwixadds{i}{{append}{append}}
  792. \nwixadds{i}{{apply\_each\_module}{apply:uneach:unmodule}}
  793. \nwixadds{i}{{at\_sign}{at:unsign}}
  794. \nwixadds{i}{{buf1}{buf1}}
  795. \nwixadds{i}{{buf2}{buf2}}
  796. \nwixadds{i}{{buf\_size}{buf:unsize}}
  797. \nwixadds{i}{{Callback}{Callback}}
  798. \nwixadds{i}{{calloc}{calloc}}
  799. \nwixadds{i}{{checkptr}{checkptr}}
  800. \nwixadds{i}{{columnwidth}{columnwidth}}
  801. \nwixadds{i}{{depths}{depths}}
  802. \nwixadds{i}{{emitfile}{emitfile}}
  803. \nwixadds{i}{{emit\_if\_unused\_and\_conforming}{emit:unif:ununused:unand:unconforming}}
  804. \nwixadds{i}{{errorat}{errorat}}
  805. \nwixadds{i}{{errorlevel}{errorlevel}}
  806. \nwixadds{i}{{errormsg}{errormsg}}
  807. \nwixadds{i}{{expand}{expand}}
  808. \nwixadds{i}{{find\_escaped}{find:unescaped}}
  809. \nwixadds{i}{{first\_doc\_line}{first:undoc:unline}}
  810. \nwixadds{i}{{free}{free}}
  811. \nwixadds{i}{{getline}{getline}}
  812. \nwixadds{i}{{getline\_expand}{getline:unexpand}}
  813. \nwixadds{i}{{getmodname}{getmodname}}
  814. \nwixadds{i}{{goto\_lookup}{goto:unlookup}}
  815. \nwixadds{i}{{goto\_node}{goto:unnode}}
  816. \nwixadds{i}{{Goto\_Node}{Goto:unNode}}
  817. \nwixadds{i}{{impossible}{impossible}}
  818. \nwixadds{i}{{indent\_for}{indent:unfor}}
  819. \nwixadds{i}{{index}{index}}
  820. \nwixadds{i}{{insert}{insert}}
  821. \nwixadds{i}{{insist}{insist}}
  822. \nwixadds{i}{{is\_begin}{is:unbegin}}
  823. \nwixadds{i}{{is\_def}{is:undef}}
  824. \nwixadds{i}{{is\_end}{is:unend}}
  825. \nwixadds{i}{{is\_index}{is:unindex}}
  826. \nwixadds{i}{{is\_keyword}{is:unkeyword}}
  827. \nwixadds{i}{{limitcolumn}{limitcolumn}}
  828. \nwixadds{i}{{Location}{Location}}
  829. \nwixadds{i}{{lookup}{lookup}}
  830. \nwixadds{i}{{malloc}{malloc}}
  831. \nwixadds{i}{{mark}{mark}}
  832. \nwixadds{i}{{markup}{markup}}
  833. \nwixadds{i}{{max\_depth}{max:undepth}}
  834. \nwixadds{i}{{mod\_end}{mod:unend}}
  835. \nwixadds{i}{{modpart}{modpart}}
  836. \nwixadds{i}{{mod\_start}{mod:unstart}}
  837. \nwixadds{i}{{Module}{Module}}
  838. \nwixadds{i}{{module}{module}}
  839. \nwixadds{i}{{Move\_Node}{Move:unNode}}
  840. \nwixadds{i}{{move\_node}{move:unnode}}
  841. \nwixadds{i}{{Name\_Node}{Name:unNode}}
  842. \nwixadds{i}{{newmodpart}{newmodpart}}
  843. \nwixadds{i}{{newmodule}{newmodule}}
  844. \nwixadds{i}{{new\_recognizer}{new:unrecognizer}}
  845. \nwixadds{i}{{notangle}{notangle}}
  846. \nwixadds{i}{{overflow}{overflow}}
  847. \nwixadds{i}{{Parent}{Parent}}
  848. \nwixadds{i}{{parttype}{parttype}}
  849. \nwixadds{i}{{print\_index}{print:unindex}}
  850. \nwixadds{i}{{printloc}{printloc}}
  851. \nwixadds{i}{{print\_pair}{print:unpair}}
  852. \nwixadds{i}{{print\_state}{print:unstate}}
  853. \nwixadds{i}{{quote\_end}{quote:unend}}
  854. \nwixadds{i}{{quote\_start}{quote:unstart}}
  855. \nwixadds{i}{{read\_defs}{read:undefs}}
  856. \nwixadds{i}{{read\_ids}{read:unids}}
  857. \nwixadds{i}{{recognizer}{recognizer}}
  858. \nwixadds{i}{{Recognizer}{Recognizer}}
  859. \nwixadds{i}{{reject\_match}{reject:unmatch}}
  860. \nwixadds{i}{{remove\_def\_marker}{remove:undef:unmarker}}
  861. \nwixadds{i}{{remove\_final\_newline}{remove:unfinal:unnewline}}
  862. \nwixadds{i}{{root}{root}}
  863. \nwixadds{i}{{search\_for\_ident}{search:unfor:unident}}
  864. \nwixadds{i}{{seekcycle}{seekcycle}}
  865. \nwixadds{i}{{starts\_code}{starts:uncode}}
  866. \nwixadds{i}{{starts\_doc}{starts:undoc}}
  867. \nwixadds{i}{{START\_SIZE}{START:unSIZE}}
  868. \nwixadds{i}{{state}{state}}
  869. \nwixadds{i}{{stop\_adding}{stop:unadding}}
  870. \nwixadds{i}{{strchr}{strchr}}
  871. \nwixadds{i}{{strcpy}{strcpy}}
  872. \nwixadds{i}{{strlen}{strlen}}
  873. \nwixadds{i}{{SYMBOLS}{SYMBOLS}}
  874. \nwixadds{i}{{syms}{syms}}
  875. \nwixadds{i}{{tabsize}{tabsize}}
  876. \nwixadds{i}{{tempnam}{tempnam}}
  877. \nwixadds{i}{{unescape}{unescape}}
  878. \nwixadds{i}{{warn\_dots}{warn:undots}}
  879. \nwixadds{i}{{write\_index\_use}{write:unindex:unuse}}
  880. \bibstyle{plain}
  881. \bibdata{web}
  882. \bibcite{aho:efficient}{1}
  883. \newsublabel{NWstrA-hea6-Q}{{}{70}}
  884. \newsublabel{NWstrA-*-Y}{{}{70}}
  885. \nwixadd{\nwixu }{checkptr}{NWstrA-*-Y}
  886. \nwixadd{\nwixu }{malloc}{NWstrA-*-Y}
  887. \nwixadd{\nwixu }{strcpy}{NWstrA-*-Y}
  888. \nwixadd{\nwixu }{strlen}{NWstrA-*-Y}
  889. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {5}List of all chunks from all files}{70}}
  890. \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {6}Index}{72}}
  891.